package com.niiwoo.activity.stage.service.content;

import com.niiwoo.activity.stage.dto.request.content.QuanOfficalAddReqDTO;
import com.niiwoo.activity.stage.dto.request.content.QuanOfficalPageQueryReqDTO;
import com.niiwoo.activity.stage.dto.request.content.ReplyUserCommentReqDTO;
import com.niiwoo.activity.stage.dto.response.content.OfficalCommentRespDTO;
import com.niiwoo.activity.stage.dto.response.content.QuanOfficalDetailsRespDTO;
import com.niiwoo.activity.stage.dto.response.content.QuanOfficalPageQueryRespDTO;
import com.niiwoo.activity.stage.dto.response.content.UserCommentRespDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

import java.util.List;

/**
 * Created by dengyunhui on 2017/12/13.
 * <p>
 * 官方你我圈服务
 */
public interface QuanOfficalDubboService {

    /**
     * 获取你我圈消息分页列表
     *
     * @param reqDTO
     * @return
     */
    PageResponseDTO<QuanOfficalPageQueryRespDTO> getMessagePageList(QuanOfficalPageQueryReqDTO reqDTO);

    /**
     * 新增或修改消息
     *
     * @param reqDTO
     */
    void addOrUpdateMessage(QuanOfficalAddReqDTO reqDTO);

    /**
     * 删除消息
     *
     * @param messageId
     * @param managerId
     * @param managerName
     */
    void delMessage(Integer messageId, Long managerId, String managerName);

    /**
     * 获取消息详情
     *
     * @param messageId
     * @return
     */
    QuanOfficalDetailsRespDTO getMessageDetails(Integer messageId);

    /**
     * 删除评论
     *
     * @param userCommentId
     */
    void delComment(Integer messageId, Long userCommentId);

    /**
     * 回复用户评论
     *
     * @param reqDTO
     */
    void replyUserComment(ReplyUserCommentReqDTO reqDTO);

    /**
     * 获取用户评论
     *
     * @param messageId
     * @param lastCommentId
     * @return
     */
    List<UserCommentRespDTO> getUserComment(Integer messageId, String lastCommentId);

    /**
     * 获取官方回复
     *
     * @param messageId
     * @param lastCommentId
     * @return
     */
    List<OfficalCommentRespDTO> getOfficalComment(Integer messageId, String lastCommentId);

    /**
     * 自动发送你我圈消息
     */
    void autoSendQuanMessage();
}
